#pragma once


#include <head.h>
//消息类型
enum msg_type
{    
     W_regist,//组员注册
     W_login,//组员登录
     B_regist,//组长注册
     B_login,//组长登录

     printfuser,//打印组员
     printfboss,//打印组长

     changeuser_id,//修改用户工号信息
     changeuser_name,//修改用户姓名信息
     changeuser_pwd,//修改用户密码信息
     changeuser_phone,//修改用户手机号信息

     changeboss_name,//修改组长姓名信息
     changeboss_pwd,//修改组长密码信息
     changeboss_phone,//修改组长手机号信息

     howmessage,//组长查看有多少任务
     whowmessage,//组员查看有多少任务
     
     alladdtask,//群发任务
     addtask,//添加任务
     deltask,//删除任务
     printftask,//查看组长任务信息
     taskinfo,//结束打印

     userprinttask,//打印组员任务信息
     overmes,//组员完成任务
     delwotask,//组员删除任务

     deleteuser,//删除组员
     deleteboss,//删除组长

     delworker,//离职请求
     printfdelworker,//离职请求结果
     delworker_confirm,//离职请求结果确认
     reminder_msg ,//提醒

     singleChat,//私聊
     yes,//结果确认对
     no,//错
     groupChat,//群聊
     over//任务发送结束
};

//项目组
enum group_type
{
     ADMIN,//行政管理部门
     HRD,//人事部门
     FIN,//财务部门
     SALE,//销售部门
     RDD//研发部门
};

// 消息结构体
typedef struct msg
{
     enum msg_type type;//消息类型
     char data[1000];//消息的数据
} MSG;
//登录用的结构体
typedef struct lg
{
     char name[128];
     char pwd[128];
} LOGIN;
// 注册组员用的结构体
typedef struct work_rg
{
     enum group_type type_W;
     int numb;
     char name[128];
     char pwd[128];
     char tel[12];
}W_REGIST;

// 注册组长用的结构体
typedef struct boss_rg
{
     enum group_type type_B;
     char name[128];
     char pwd[128];
     char tel[12];
}B_REGIST;

// 查询结果结构体
typedef struct query_result
{
     char ** result;//查询的结果，它是一个字符串数组
     int row;//结果的行
     int col;//结果的列
}QR;
//工号结构体
typedef struct numb
{
     int old_num;
     int new_num;
}NUMB;
//姓名结构体
typedef struct name
{
     char old_name[128];
     char new_name[128];
}NAME;

// main.h 或其他头文件
typedef struct {
    char name[128];
    char old_pwd[128];
    char new_pwd[128];
} PASSWORD;

typedef struct {
    char name[128];
    char old_tel[128];
    char new_tel[128];
} PHONE;

typedef struct {
     int id;
    char tastname[128];//任务名
    char groupername[128];//组长名
    int worker_id;//组员工号
    char workername[128];//组员名
    char type[128];//任务类型
}TAST;

typedef struct {
     int id;
     char name[128];
}delTEST;

typedef struct {
    int id;
    char name[128];
    char progress[128];
}TASK;

typedef struct {
     char name[128];
}PRINTFTASK;

typedef struct {
     int id;
     char name[128];
     char overpa[128];
}OVPS;